#pragma once
/*
 * This game use those following libraries/engines:
 * Bullet   - Physics Engine
 * Enet     - UDP networking library
 * Ogre3D   - 3d engine (opengl)
 * Gorilla  - 2D graphics interface for Ogre3D
 */

//#include <boost/algorithm/string.hpp>
// Ogre3D & OIS include files

#define LESS_HEADERS
#ifdef LESS_HEADERS
#include "OgreBillboardChain.h"
#include "OgreBillboardSet.h"
#include "OgreCamera.h"
#include "OgreConfigFile.h"
#include "OgreEntity.h"
#include "OgreException.h"
#include "OgreLight.h"
#include "OgreLogManager.h"
#include "OgreManualObject.h"
#include "OgreMaterial.h"
#include "OgreMaterialManager.h"
#include "OgreMath.h"
#include "OgreMesh.h"
#include "OgreMeshManager.h"
#include "OgreOverlay.h"
#include "OgreOverlayContainer.h"
#include "OgreOverlayElement.h"
#include "OgreOverlayManager.h"
#include "OgreRenderWindow.h"
#include "OgreResourceGroupManager.h"
#include "OgreRoot.h"
#include "OgreSceneManager.h"
#include "OgreSceneNode.h"
#include "OgreString.h"
#include "OgreStringConverter.h"
#include "OgreStringVector.h"
#include "OgreSubEntity.h"
#include "OgreSubMesh.h"
#include "OgreTechnique.h"
#include "OgreViewport.h"

#include "OgreRenderQueueListener.h"



#else
#include <Ogre.h>
#endif
#ifdef __APPLE__
#include <macUtils.h>
#include <OIS/OIS.h>
#define CROSSLOAD(s) load(macBundlePath() + "/Contents/Resources/"+s)
#else
#include <OIS.h>
#define CROSSLOAD(s) load(s)
#endif

//#include "yaml-cpp/yaml.h"
#include "Procedural.h"

//#include "procedural_buildings.h"
#define TO_STR StringConverter :: toString
#define NODE(s) scmgr->getRootSceneNode()->createChildSceneNode(s)
#define ENTITY scmgr->createEntity
#define LOGMSG(s) Ogre::LogManager::getSingleton().getDefaultLog()->logMessage(s)

using namespace std;
using namespace Ogre;

#include "Gorilla.h"

typedef Ogre::Vector3 Vec3;
typedef Ogre::Vector2 Vec2;

#include "bar.h"
#include "ezogre.h"




